草庐IT

MySQL GROUP_CONCAT 转义

全部标签

php - 避免在 php 中使用 html 转义字符

我正在尝试使用PHP进行api调用。其中一个参数是货币我的API调用是这样的但是如果我打印调用,它会打印为....¤cy=USD&.......我查了一下,发现¤是¤编辑:我尝试了urlencode和htmlentities。虽然我希望在源代码中获得¤cy,但我分别获得了%26currency和¤cy。我想对“¤cy”进行编码,这样浏览器就不会将¤转换为¤。谢谢 最佳答案 PHP不转换任何东西。浏览器正在将¤t转换为¤t以便显示。如果您想查看$call是什么在浏

php - 不先转义就输出某些内容有多危险

继我询问构建自定义cms时转义内容的问题之后,我想了解不从数据库中转义内容有多危险-假设数据在插入数据库之前已经过过滤/验证。我知道转义输出是最佳做法,但我不确定将值“注入(inject)”到要显示的页面内容中有多容易,甚至可能。例如,假设使用简单的echo语句显示带有HTML标记的内容:hello无可否认,就内容写作而言,它不会赢得任何奖项;)我的问题是,假设在数据库插入之前进行了过滤/验证,有人可以出于恶意目的更改它吗? 最佳答案 始终为适当的上下文转义;无论是JSON还是XML/HTML还是CSV还是SQL(尽管您应该为SQL

php - 在 php 中作为命令行参数传递时转义变量中的空格

我有一个php文件abc.php,它正在处理一些命令行参数,最后调用另一个php文件def.php,system("php/user/release/scheduler_test/def.php$name$final>~/scheduler_test/logs/logs_$name.txt2>&1&")这里的问题是,变量$final有一个用空格分隔的巨大字符串,因为对于php来说,空格是分隔符,它没有占用整个$final作为一个参数。我想将此$final变量中的值作为单个值传递。谁能告诉我怎么做?我希望我是清楚的。 最佳答案 这就是

php - 为什么这行代码不需要转义引号

我正在学习PHP教程,并遇到了这行代码redirect_to("manage_content.php?subject={$current_subject["id"]}");我很惊讶地看到这个工作不需要转义括号内“id”周围的引号。但是我不明白为什么。有人知道吗? 最佳答案 当您用花括号{}包裹一个变量时,PHP解析器知道里面的任何内容都是一个变量,并且不会像字符串的其余部分那样解析它!这仅适用于双引号中的字符串-单引号字符串按面值获取,因此必须进行转义:$str='Mycoolstring!{$array[\'key\']}';虽然

php - Laravel 列表 concat 不显示数据(全名)

我在我的项目中使用Laravel5.3,我试图获取多个列并在View的下拉选择元素中显示数据。我正在做这样的查询:$users=User::select(DB::raw("CONCAT(first_name,'',last_name)ASfull_name,id"))->lists('full_name','id')->toArray();但这是我从中得到的数据:array:6[▼14=>""15=>""16=>""17=>""19=>""22=>""]full_name的值为空,我该如何解决? 最佳答案 尽量避免使用full_na

php - 使用 echo 转义 php 中的字符

小问题:echo''.$filename.'';这将创建一个带有onClick函数的按钮addAsset(example.png);但我想要addAsset("example.png")如何转义"字符?谢谢! 最佳答案 您可以尝试以下方法:echo''.$filename.'';所以,与其转义"双引号。我们正在逃跑'单引号。阅读html输出时会更清楚。编辑:更好的方法是在phpblock之外编写htmlblock,如下所示:');">如您所见,它将更具可读性并且不需要转义。你可能会注意到这使用了,这只是的缩写.在Escapingfr

php - 如何用引号转义 php exec() 命令

我在Linux上使用Exiv2命令行工具来编辑图像元数据,如下所示:exiv2-M"setIptc.Application2.CaptionStringThisismycaption....."modifyIMG.jpg我想使用用户提供的标题从PHP执行此操作。如果用户不输入特殊字符,这将起作用:exec('/usr/local/bin/exiv2-M"setIptc.Application2.CaptionString'.$caption.'"modifyIMG.jpg');我需要允许用户使用特殊字符,例如单引号和双引号。我想使用escapeshellcmd()来防止恶意数据。我怎样

php - 使用 preg_replace 替换字符,除非前面有转义字符

我正在尝试执行以下操作,希望周围有reg_ex专家可以提供一些帮助。我需要在我的代码中替换字符[并使其成为{。但是有些情况下[需要保持[而不是改变。所以我认为我需要使用preg_replace("[","{",$string);具有合适的正则表达式的函数,这将导致[前面没有转义字符的字符被使用让我们说。那么我怎样才能替换这个“[”而不是这个“[”呢?提前致谢 最佳答案 你可以做到这一点,它是通过约定调用negativelookbehindassertionsechopreg_replace("/(?基本上,“仅当前面没有\时才将[替

php - 如何转义紧随其后的引号?

我想转义所有尚未转义的双引号。我已经在使用real_escape_string(),但我想了解以下正则表达式/方法有什么问题:$str='"Hello"""""world!\"';preg_replace('/(^|[^\\\\]{1})\"/','${1}\"',$str);(PS:我知道-\\"不会被转义,在某些其他情况下可能会成为问题,尽管这对我的脚本来说无关紧要。)结果是:\"Hello\""\""\"world!\"但我希望它是:\"Hello\"\"\"\"\"world!\" 最佳答案 这里是你如何转义你的sql:$s

php - 在匹配使用变量 : PHP:preg_match 形成的模式时转义字符的特殊含义

我正在执行正则表达式匹配以查找文本中某些特定单词集的首次出现。因为我不想在它们是其他单词的子字符串时生成误报,所以我想使用模式。例如,我想找到整个单词“DOM”,而不是“RANDOMIZER”中的子字符串DOM,比方说。因此,我将模式用作"\bDOM\b"来考虑所有出现的DOM,两侧都有单词边界。但是DOM和其他此类模式字符串来自数组$tags。将每个标签从$tags读入$tag,比较实际上是:preg_match("/\b$tag\b/",...)但如果$tag=".NET",这会遇到麻烦。然后"\b$tag\b"将开始匹配CNET、INET等字符串,将.解释为通配符。那么,我们如何